VISUDO(8) | MAINTENANCE COMMANDS | VISUDO(8) |
名前¶
visudo - sudoers ファイルを編集する
書式¶
visudo [-c] [-q] [-s] [-V] [-f sudoers]
説明¶
visudo は vipw(8) によく似た安全なやり方で sudoers ファイルを編集する。 visudo は sudoers ファイルをロックして、重複した編集が同時に行われないようにするとともに、 整合性をざっと調べ、文法エラーのチェックを行う。 sudoers ファイル が現在編集中だった場合は、「try again later」というメッセージを端末に 表示する。
visudo が使用するエディタについては、コンパイル時に設定された エディタのリストがプログラムに埋め込まれているが、sudoers ファイルの Defaults 行で editor オプションを使えば、 それを変更することができる。このリストはデフォルトでは、 使用しているシステムにおける vi(1) のパスであり、 configure スクリプトによって割り出されたものだ。 通常 visudo は、環境変数 VISUAL や EDITOR の値が上述のエディタ・リストに含まれる エディタでないかぎり、そうした環境変数を使用しない。とは言え、visudo が --with-env-editor オプションを付けて configure されている場合や、 sudoeres ファイルの Defaults 行で env_editor オプションがセットされている場合は、visudo は VISUAL や EDITOR によって指定された どんなエディタでも使用することになる。これがセキュリティホールに なりかねないことに注意してほしい。単に VISUAL や EDITOR を設定するだけで、ユーザが任意のプログラムを 実行できるようになってしまうからだ。
visudo は編集が終わると、sudoers ファイルの文法解析を行い、 文法エラーがあれば、変更を保存しない。visudo はエラーを発見すると、 エラーが起きた行番号を知らせるメッセージを表示し、"What now?" と いうプロンプトを出す。このとき、"e" を押せば、 sudoers ファイルを再編集できる。"x" を押せば、 変更を保存せず終了だし、"Q" を押せば、変更を保存して終了だ。 "Q" の選択は、くれぐれも慎重にやってほしい。なぜなら、 visudo が文法エラーがあると考えるのなら、sudo も 同様に考えるはずであり、エラーが訂正されるまで、もう誰にも sudo が 使えなくなってしまうからだ。文法エラーが発見されたとき、"e" を 押して sudoers ファイルを編集しようとすると、カーソルがファイルの エラーが起きた行に飛ぶ (エディタにその機能があればだが)。
オプション¶
visudo では以下のコマンドラインオプションが使用できる。
- -c
- check-only モードを有効にする。現在の sudoers ファイルの 文法をチェックし、メッセージを標準出力に表示して、 sudoers の状態を詳細に報告する。文法チェックが成功裡に終わった場合、 visudo は返り値 0 で終了する。文法エラーに出会った場合の 返り値は 1 である。
- -f sudoers
- sudoers ファイルの位置を指定・変更する。このオプションを 付けると、 visudo はデフォルトの /etc/sudoers ではなく、 ユーザが選んだ sudoers ファイルを編集 (あるいは、チェック) する ことになる。ロックファイルとしては、指定された sudoers ファイルの 名前の末尾に ".tmp" を付けたものが使われる。
- -q
- quiet モードを有効にする。このモードでは、文法エラーの詳細情報は 表示されない。このオプションに意味があるのは、-c オプションと 組み合わせたときだけである。
- -s
- sudoers ファイルの厳密 (strict) チェックを有効にする。 エイリアスを定義する前に使用すると、visudo がそれを文法エラーと 見なすようになるわけだ。ホスト名やユーザ名がアルファベットの大文字、 数字、アンダースコア ('_') だけから構成されている場合、そうしたものと エイリアスとの区別は付かないことに注意してほしい。
- -V
- オプションに -V (version) を付けると、visudo は バージョンナンバーを表示して、終了する。
環境変数¶
以下の環境変数が参照されるかどうかは、sudoers の editor や env_editor オプションの値次第である。
ファイル¶
- /etc/sudoers
- 誰が何を実行できるかのリスト
- /etc/sudoers.tmp
- visudo が使うロックファイル
メッセージによる診断¶
- sudoers file busy, try again later.
- 現在、ほかの誰かが sudoers ファイルを編集中だ。
- /etc/sudoers.tmp: Permission denied
- visudo を root として実行しなかった。
- Can't find you in the passwd database
- あなたのユーザ ID はシステムの passwd ファイルに載っていない。
- Warning: {User,Runas,Host,Cmnd}_Alias referenced but not defined
- User_Alias, Runas_Alias, Host_Alias, Cmnd_Alias のどれかを、 定義しないまま使用しようとしている。 あるいは、記載したユーザ名かホスト名の中に、アルファベットの大文字、 数字、アンダースコア ('_') のみからなるものがある。後者の場合は、 この warning を無視して構わない (sudo は警告を出さないないだろう)。 -s (strict) モードでは、warning ではなく、error になる。
- Warning: unused {User,Runas,Host,Cmnd}_Alias
- 指摘された User_Alias (あるいは、Runas_Alias, Host_Alias, Cmnd_Alias) は 定義されているが、一度も使用されていない。そうした使用しないエイリアスは、 コメントアウトするなり、消去するなりしてもよいだろう。 -s (strict) モードでは、warning ではなく、error になる。
関連項目¶
作者¶
sudo の製作には、多数の人々が長年に渡って取り組んできた。 visudo の当バージョンを書いたのは、
Todd Miller
である。詳細については、配布物中の HISTORY ファイルか、 http://www.sudo.ws/sudo/history.html を御覧になっていただきたい。
警告¶
visudo が使用するエディタでシェル・エスケープが可能なかぎり、 ユーザがルート・シェルを獲得するのを防止する簡単な方法はない。
バグ¶
visudo
にバクを発見したと思ったら、下記のページにアクセスして、
バグレポートを提出していただきたい。
http://www.sudo.ws/sudo/bugs/
サポート¶
ある程度の無料サポートが
sudo-users
メーリングリストを通して利用できる。
購読やアーカイブの検索には下記
URL を御覧になること。
http://www.sudo.ws/mailman/listinfo/sudo-users
免責¶
visudo
は「現状のまま」提供される。明示的な、あるいは黙示的な
いかなる保証も、商品性や特定目的への適合性についての黙示的な保証を含め、
またそれのみに止まらず、これを否認する。詳細な全文については、
sudo
と一緒に配布されている
LICENSE ファイルや 下記 Web
ページを御覧いただきたい。
http://www.sudo.ws/sudo/license.html
June 11, 2009 | 1.7.2p1 |